<div class="easyui-panel" style="padding:10px;" data-options="fit:true,border:false">
    <div class="easyui-layout tab_a" data-options="fit:true">
        <div data-options="region:'north',collapsed:true,title:'文件夹操作'" style="height:75px">
        	<div style="padding:10px">
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add'" onclick="folder_new()">新建</a>                
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit'" onclick="folder_renaming()">重命名</a>
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-cut'" onclick="folder_cur()">剪切</a>
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-page-page-copy'" onclick="folder_copy()">复制</a>                
                <a id="folder_paste_tool" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-page-page-paste',disabled:true" onclick="paste_folder()">粘贴</a>                
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-reload'" onclick="file_folder_tree()">刷新</a>
                <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-cancel'" onclick="folder_del()">删除</a>
            </div>
        </div>
        <div data-options="region:'west',split:true" style="width:220px; padding:10px;">
        	<div id="file_cabinets_root" style="height:18px;cursor:pointer;" onclick="root_directory_t()"><span class="tree-icon tree-folder icon-folder" style="margin-top:-2px"></span> 个人文件柜</div>
        	<ul id="folder_list"></ul>
        </div>
        <div data-options="region:'center'">
            <div><table id="file_list_dg"></table></div>
        </div>
    </div>
</div>
<script>
var folder_str = '';

var file_copy_f = 0;//文件拷贝标志
var file_copy_old_folder = '';//文件拷贝源路径
var file_copy_old_v = '';//文件拷贝源路径

var folder_copy_f = 0;//文件夹拷贝标志
var folder_copy_old_folder = '';//文件夹拷贝源路径

//渲染目录树
function file_folder_tree(){
	$('#folder_list').tree({
		url:'<?php echo base_url('file_cabinets/folder_list?_=')?>'+GetRandomNum(),
		animate:true,
		lines:false,
		fit:true,
	});
}
file_folder_tree();//渲染部门列表

//获取选中的文件，并返回数组
function files_select(){
	var getobj = $('#file_list_dg').datagrid("getChecked");
	var getname = [];
		$.each(getobj, function(index, item){
			getname.push(item.filename);
		}); 
	return getname;
}

//选择个人文件柜字符串的动作函数
function root_directory_t(){
	folder_str = '';
	file_folder_tree();//刷新树，可以清除选中状态
	root_directory();//刷新列表，回到更目录并显示根目录的文件列表
	$("#file_cabinets_root").addClass("tree-node tree-node-selected");//在个人文件柜字符上添加选中样式
	
}

//文件列表函数，包括渲染列表样式和文件操作工具的相应动作函数
function root_directory(folder_str){
	$('#file_list_dg').datagrid({		
		url:'<?php echo base_url('file_cabinets/files_list')?>',
		queryParams:{
			folder_str:folder_str
		},
		singleSelect:true,
		selectOnCheck:false,
		border:false,
		//fitColumns:true,
		columns:[[
			{field:'id',checkbox:true},
			{field:'filename',title:'名称',width:400},				
			{field:'filectime',title:'修改时间',width:150,align:'center'},
			{field:'filesize',title:'大小',width:100,align:'center'}
		]],
		toolbar: [{
            text:'上传',
            iconCls:'icon-add',
            handler:function(){
				file_new_dialog();	
			}
        },{
            id:'file_copy_tool',
			text:'复制',
            iconCls:'icon-page-page-copy',
            handler:function(){
				var getname = files_select();
				if(getname.length == 0){
					$.messager.alert('错误','要复制文件，请至少选择一条','error');
				}else{
					file_copy_f = 1;
					file_copy_old_folder = folder_str;
					file_copy_old_v = getname;
					$.messager.alert('提示','复制成功，请指定文件夹进行粘贴！');	
					$('#file_paste_tool').linkbutton('enable');
				}
			}
        },{
            id:'file_paste_tool',
			text:'粘贴',	
			disabled:true,
            iconCls:'icon-page-page-paste',
            handler:function(){
				if(file_copy_f == 1){//1为复制
					$.post("<?php echo base_url('file_cabinets/files_copy')?>",{
						m_f:file_copy_f,//1为复制，2为粘贴
						path_old:file_copy_old_folder,//旧路径
						path_new:folder_str,//新路径
						getname:file_copy_old_v//文件名数组
					},function(data,status){
						if(data == 1){
							file_copy_f = 0;
							$('#file_list_dg').datagrid('reload');	// get unfrozen columns
							
						}else{
							$.messager.alert('错误','粘贴文件失败!','error');
						}
					});
				}else if(file_copy_f == 2){
					$.post("<?php echo base_url('file_cabinets/files_cut')?>",{
						m_f:file_copy_f,//1为复制，2为粘贴
						path_old:file_copy_old_folder,//旧路径
						path_new:folder_str,//新路径
						getname:file_copy_old_v//文件名数组
					},function(data,status){
						if(data == 1){
							file_copy_f = 0;
							$('#file_list_dg').datagrid('reload');	// get unfrozen columns
							
						}else{
							$.messager.alert('错误','粘贴文件失败!','error');
						}
					});	
				}
			}
        },{
            text:'剪切',
            iconCls:'icon-cut',
            handler:function(){
				var getname = files_select();
				if(getname.length == 0){
					$.messager.alert('错误','要剪切文件，请至少选择一条','error');
				}else{
					file_copy_f = 2;
					file_copy_old_folder = folder_str;
					file_copy_old_v = getname;
					$.messager.alert('提示','剪切成功，请指定文件夹进行粘贴！');	
					$('#file_paste_tool').linkbutton('enable');
				}
			}
        },{
            text:'重命名',
            iconCls:'icon-edit',
            handler:function(){
				var getname = $('#file_list_dg').datagrid("getSelected");
				if(!getname){
					$.messager.alert('错误','要重命名文件，请至少选择一条','error');
				}else{
					$.messager.prompt('重命名', '请输入新名称', function(r){
						if(r){
							if(r.indexOf(".") > 0){
								$.post("<?php echo base_url('file_cabinets/files_renaming')?>",{
									path_str:folder_str,
									old_name:getname.filename,
									new_name:r
								},function(data,status){
									if(data == 1){
										$('#file_list_dg').datagrid('reload');	// get unfrozen columns
									}else{
										$.messager.alert('错误','重命名文件失败!','error');
									}
					
								});
							}else{
								$.messager.alert('错误','比如输入文件后缀或文件后缀不正确!','error');
							}
						}
					});
					$(".messager-input").val(getname.filename);
				}
			}
        },{
            text:'刷新',
            iconCls:'icon-reload',
            handler:function(){
				$('#file_list_dg').datagrid('reload');	// get unfrozen columns
			}
        },'-',{
            text:'删除',
            iconCls:'icon-cancel',
            handler:function(){
				var getname = files_select();
				if(getname.length == 0){
					$.messager.alert('错误','要删除文件，请至少选择一条','error');
				}else{
					$.messager.confirm('提示', '确定要删除选中的文件吗?', function(r){
						if(r){
							$.post("<?php echo base_url('file_cabinets/files_del');?>",{
								getpath:folder_str,
								getname:getname
							},function(data){
								if(data){
									$('#file_list_dg').datagrid('reload');	// get unfrozen columns
								}else{
									$.messager.alert('错误','删除文件失败','error');	
								}
							});
						}
					});
				}
			}
        }],
		onLoadSuccess: function(data){
			if(file_copy_f == 1 || file_copy_f == 2){//如果已经复制了，则启用粘贴按钮
				$('#file_paste_tool').linkbutton('enable');
			}else{
				$('#file_paste_tool').linkbutton('disable');
			}
		},
		onDblClickRow:function(index,data){
			/*打开附件*/
			
			//filename = encodeURIComponent(data.filename);
			//window.open(pro_path+'file_cabinets/files_open/'+folder_str+filename);
			
			/*下载附件*/
			//var att_name = encodeURIComponent(att_name);
			var file_name = folder_str+data.filename;
			$.post(PROJECT_PATH+'file_cabinets/file_exist',{file_name:file_name},function(str,status){
				if(str.status){
					//var url = pro_path+'attachment/att_down?m='+m+'&att_id='+att_id+'&att_name='+att_name;
					//var str = "<iframe height='0' width='0' frameborder='0'  src=" + url + " ></iframe>";  
					//$("#attachmentIFrame").html(str);
					var content = "<form id='attachmentform' action='"+PROJECT_PATH+"file_cabinets/file_down' method='POST'>";
					content += "<input type='hidden' name='folder_str' value='"+folder_str+"'>";
					content += "<input type='hidden' name='file_name' value='"+data.filename+"'></form>";
					$("#attachmentIFrame").empty().append(content);
					$("#attachmentform").submit();
				}else{
					$.messager.alert('警告','文件不存在，可能已被删除！');
				}
			},'JSON');

		}
	});
	//folder_str = '';
}
root_directory('');

//文件目录树的点击事件
$('#folder_list').tree({	
	onSelect : function(node) {
		$("#file_cabinets_root").removeClass("tree-node tree-node-selected");
		folder_str = '';//每选中一次都清空上一次点击后生成的数据
		//返回树对象
		var tree = $(this).tree;
		//选中的节点是否为叶子节点,如果不是叶子节点,清除选中
		var isLeaf = tree('isLeaf', node.target);
		if (!isLeaf) {
			//不是叶子节点时展开该节点
			$('#folder_list').tree('toggle',node.target);
		}else{		
			//alert(node.text);
		}
		
		
		do{
			folder_str = node.text+'/'+folder_str;
			var node=$('#folder_list').tree('getParent',node.target);
		}while(node);
		/*
		var node = $('#folder_list').tree('getSelected');
		while(node){
			var node=$('#folder_list').tree('getParent',node.target);
			folder_str = folder_str+'/'+node.text;
		}
		*/
		root_directory(folder_str);
		/*
		$('#file_list_dg').datagrid({
			url:'<?php echo base_url('file_cabinets/files_list')?>',
			queryParams:{
				folder_str:folder_str
			},
			columns:[[
				{field:'id',checkbox:true},
				{field:'filename',title:'名称',width:400},				
				{field:'filectime',title:'修改时间',width:150,align:'center'},
				{field:'filesize',title:'大小',width:100,align:'right'}
			]]
		});
		*/
	} 		
});

//添加文件夹
function folder_new(){
	var node = $('#folder_list').tree('getSelected');
	$.messager.prompt('新建文件夹', '请输入文件夹名称', function(r){
		if (r){
			$.post("<?php echo base_url('file_cabinets/folder_new')?>",{
				path_str:folder_str+r
			},function(data,status){
				//alert("Data: " + data + "\nStatus: " + status);
				if(data == 1){					
					//file_folder_tree();
					
					var t = $('#folder_list');
					var node = t.tree('getSelected');
					t.tree('append', {
						parent: (node?node.target:null),
						data: [{
							text: r,
							state: 'open',
							iconCls: 'icon-folder'
						}]
					});
					
				}else if(data == 2){
					$.messager.alert('错误','文件夹名称重复!','error');
				}else{
					$.messager.alert('错误','创建文件夹失败!','error');
				}
			});
		}
	});
}

//删除文件夹
function folder_del(){
	var node = $('#folder_list').tree('getSelected');
		if(node){
			$.messager.confirm('删除文件夹', '您确定要删除该文件夹吗？', function(r){
				if (r){
					$.post("<?php echo base_url('file_cabinets/folder_del')?>",{
						path_str:folder_str
					},function(data,status){
						//alert("Data: " + data + "\nStatus: " + status);
						if(data == 1){
							//file_folder_tree();
							
							var node = $('#folder_list').tree('getSelected');
							$('#folder_list').tree('remove', node.target);
							
							
							$('#file_list_dg').datagrid('reload');	// get unfrozen columns
						}else{
							$.messager.alert('错误','删除文件夹失败!','error');
						}
					});
				}
			});
		}else{
			$.messager.alert('错误','要删除文件夹，请先指定!','error');
		}
}

//重命名文件夹
function folder_renaming(){
	var node = $('#folder_list').tree('getSelected');
		if(node){
			$.messager.prompt('文件夹重命名', '正在为 '+node.text+' 重命名,请输入新名称', function(r){
				if (r){
					
					$.post("<?php echo base_url('file_cabinets/folder_renaming')?>",{
						path_str:folder_str,
						old_name:node.text,
						new_name:r
					},function(data,status){
		
						if(data == 1){
							//file_folder_tree();
							if (node){
								$('#folder_list').tree('update', {
									target: node.target,
									text: r
								});
							}
							
						}else{
							$.messager.alert('错误','重命名文件夹失败!','error');
						}
		
					});
					
				}
			});
		}else{
			$.messager.alert('错误','要重命名文件夹，请先指定!','error');
		}
}

//复制文件夹
function folder_copy(){
	var node = $('#folder_list').tree('getSelected');
	if(node){
		folder_copy_f = 1;
		folder_copy_old_folder = folder_str;
		$.messager.alert('提示','复制成功，请指定文件夹进行粘贴！');	
		$('#folder_paste_tool').linkbutton('enable');
	}else{
		$.messager.alert('错误','要复制文件夹，请先指定','error');
	}
}

//剪切文件夹
function folder_cur(){
	var node = $('#folder_list').tree('getSelected');
	if(node){
		folder_copy_f = 2;
		folder_copy_old_folder = folder_str;
		$.messager.alert('提示','剪切成功，请指定文件夹进行粘贴！');	
		$('#folder_paste_tool').linkbutton('enable');
	}else{
		$.messager.alert('错误','要剪切文件夹，请先指定','error');
	}
}

//粘贴文件夹
function paste_folder(){
	if(folder_copy_f == 1){//1为复制
		$.post("<?php echo base_url('file_cabinets/folder_copy')?>",{
			m_f:folder_copy_f,//1为复制，2为粘贴
			path_old:folder_copy_old_folder,//旧路径
			path_new:folder_str//新路径
		},function(data,status){
			if(data == 1){
				folder_copy_f = 0;
				$('#folder_paste_tool').linkbutton('disable');//禁用文件夹工具栏中的粘贴
				$('#file_list_dg').datagrid('reload');	// get unfrozen columns
			}else{
				$.messager.alert('错误','粘贴文件失败!','error');
			}
		});
	}else if(folder_copy_f == 2){
		$.post("<?php echo base_url('file_cabinets/folder_cur')?>",{
			m_f:folder_copy_f,//1为复制，2为粘贴
			path_old:folder_copy_old_folder,//旧路径
			path_new:folder_str//新路径
		},function(data,status){
			if(data == 1){
				folder_copy_f = 0;
				file_folder_tree();
				$('#file_list_dg').datagrid('reload');	// get unfrozen columns
			}else{
				$.messager.alert('错误','粘贴文件失败!','error');
			}
		});	
	}
}

//弹出文件上传窗口
function file_new_dialog(){
	$('#dialog_custom_box').dialog({
		title: '上传文件',
		width: 450,
		height: 300,
		closed: false,
		cache: false,
		method:'post',
		href: '<?php echo base_url('file_cabinets/files_new')?>',
		modal: true,
		onClose:function(){
			$('#file_list_dg').datagrid('reload');	// 关闭时刷新文件列表
		}
	});
}

</script>